/**
 * 试编写一个带头结点的单链表就地逆置，所谓的就地逆置就是时间复杂度为O(1)
 * 
 * 思路：头插法建立单链表
 * */

void Reverse_List(LinkedList& L)
{
	LNode* p, *r;		//p为遍历指针，r为p的后继指针
	p = L->next;		//从第一个元素结点开始
	L->next = NULL;		//先将头结点L的next指向NULL
	while(p) {			//依次将元素摘下
		r = p->next;	//暂存p的后继结点
		p->next = L->next;	//将p结点插入到头结点之后
		L->next = p;	//重新建立头结点的next域
		p = r;			//遍历结点p向后移动
	}
}